Video streaming is increasingly becoming an important communication tool in corporate environments. Senior management addresses, personnel training, and sales material often involve the use of video streaming from a corporate headquarters facility to local offices. Problems can arise where streaming traffic and non-streaming traffic make use of the same network infrastructure. A conventional video streaming network is shown in FIG. 1.
In FIG. 1, a collection of sites 101A-101C containing clients, directs video streaming requests (see FIG. 1) from the clients to streaming servers, 103A-103C, that are typically located elsewhere (e.g., at corporate headquarters). The servers accept the requests and serve (e.g., supply, transmit, communicate etc.) the streams that correspond to the requests. In the mode illustrated in FIG. 1, video streaming makes use of the same infrastructure that carries other corporate traffic including e-mail, web access, file transfer protocol (ftp), and database access. There exist, however, fundamental differences between the type of traffic flows induced by streaming and those other services.
Conventional corporate services are implemented using transmission control protocol (TCP) which places a premium on lossless transmission and in responsible sharing of network resources. TCP flows will detect packet loss, retransmit all lost packets, and more importantly reduce their transmission rates until loss is no longer present. These congestion control properties of TCP make it possible for all these services to harmoniously share network links in an optimal fashion both at high and low demand periods. Streaming on the other hand requires that packets be sent to their destination at a fixed rate, and can only recover lost packets within a limited time window. The unfortunate side-effect of these aspects of streaming is that video streaming can crowd out all other communication, thus crippling other corporate services (e.g., e-mail). Furthermore, since it is difficult to reduce streaming rates, accepting a large number of requests can end up having a detrimental effect on the streams themselves with each client having an unacceptable experience.
Most streaming servers allow administrators to set an admission threshold. This makes it possible to deny streaming requests that would result in utilization that would exceed a preset limit. However this capability is of little use in an environment like the one illustrated in FIG. 1. First and foremost a server may be responsible for serving multiple network links, and there is no way to set a different threshold on a per link basis. Second, a practical threshold may depend on what other traffic is present on the link at the moment, and there is no way for the streaming server to determine this. Third, multiple servers may be collaborating in servicing requests over a particular network link and there is no easy way for those servers to make collaborative decisions. Finally, the link's capacity may vary over time, e.g., virtual private network (VPN) connections, and thus any fixed threshold could be inappropriate.
FIG. 2 illustrates the problems that arise with locally controlled streaming content admissions that are not coordinated. In the FIG. 2 example each server (server 1 and server 2 in FIG. 2) has a serving threshold of two streams and each channel (channel 1, channel 2 and channel 3) can support three streams. FIG. 2 illustrates how a lack of coordination among servers can lead to both over-use (top illustration) and under-use (bottom illustration) of the network channels. For example, in the top illustration, channel 1 is overwhelmed even though both server 1 and server 2 believe that channel 1 is being used within its bandwidth. In the bottom illustration, additional content is not served over channels 1 and 3 even though those channels have spare capacity.
Conventional approaches either accept all traffic flows and attempt to prioritize them inside the network (allowing the network administrator to set target utilizations and target priorities) or to manage the admission of traffic flows on a per server basis (as illustrated in FIG. 2). Network centered approaches can ensure that TCP flows are accommodated but requires global network infrastructure upgrades that are both costly and difficult to manage. Moreover, server centered approaches often fail to allocate usage properly in the presence of multiple network links and multiple streaming servers.